#ifndef SHAPE_H
#define SHAPE_H

#include <string>
#include "vec2f.h"
#include "vec3f.h"

class Shape {
 
 public:
  Shape();
  virtual ~Shape();
  
  void setposition(vec2f pos);
  void setcolor(vec3f color);
  void setspeed(vec2f speed);
  void setfactor(float f);
  const vec2f& getpos() const;
  const vec3f& getcolor() const;
  const vec2f& getspeed() const;
  const float getfactor() const;
  virtual void draw() const=0;
  virtual std::string getName()=0;
  virtual void setDim(vec2f ) = 0;
  virtual const vec2f& getDim() = 0;

 protected:
  vec2f _pos;
  vec2f _speed;
  vec3f _color;
  float _factor;
 
};



#endif
